這篇會介紹如何將寫好的程式部屬到 Azure 雲端上,順便玩玩自動化部屬 Pipelines。
Azure 網址: https://portal.azure.com/
到 Azure 管理頁面並新增一個 App Service (應用程式服務)。
到首頁後選擇 更多服務
計算分類可以找到 應用程式服務
配置如下,執行階段堆疊目前已經可以選 .NET Core 3.0,不過我還是介紹之前的做法先選 .NET Core 2.2,最後方案記得選擇 F1 免費,然後一直下一步最後選建立。
Azure DevOps 網址: https://azure.microsoft.com/zh-tw/services/devops/
到 Azure DevOps 頁面新增專案,配置如下。
選擇 Repos 選單,此時瀏覽器上的網址就是 Git 可以推送的路徑。
這裡我使用小烏龜將專案推上去 (不限定使用的 Git 軟體)。
補充: commit 的時候不要將 appsettings.json 加入版控,因為裡面含有隱密訊息,後面會介紹利用 Pipelines 在發布前將檔案加入。
對專案按 右鍵
選擇 發行
,然後選擇持續傳遞下面的 設定
。
選擇原始碼控制和剛剛建立的 App Service 配置如下。
到這裡就完成了程式的自動化部屬,git push 後 Azure DevOps 會自動執行建置、測試並發行程式到 Azure 上。
Releases 完後就可以去看看我們的網站。
這個步驟的用途是因為 appsettings.json 包含 line bot 的密鑰和 token,這些隱密資訊不應該進入版控,所以才特別新增一個步驟在部屬期間將檔案加入。
到 Builds 頁面選擇 Edit
。
新增工作找到下列三個項目。
Delete files
(刪除文件)Download secure file
(下載安全文件)Copy files
(將文件複製到)調整順序按照 Delete files
、 Download secure file
、 Copy files
排序,並放在Build
前面。
簡單說明執行邏輯,第一步建置前先刪除原版控內空白的 appsettings.json,接著下載需要部屬到正式端的 appsettings.json,不過因為文件下載後會放在虛擬機的暫存空間,所以最後需要使用 Copy files 將檔案複製到根目錄,配置如下。
Source Folder: 來源目錄
Contents: 要複製的檔案名稱
Target Folder: 目的目錄
$(Agent.TempDirectory): 暫存安全文件的目錄
$(Build.SourcesDirectory): 存放編譯前文件的目錄,iBotTest 是根目錄名稱
設定完後按儲存 Save & queue
,接著等待部屬完成就好。
補充: 目前 Pipelines 和 Azure 已經完全支援 .NET Core 3.0,如有使用 Preview 版本才需要做步驟 5 和 6。
和上一步驟一樣在 Builds 頁面選擇 Edit
,然後新增工作找到 Use .NET Core
。
將它移動到第一個項目
並設定版本
,其他預設就好。
在 App Service 管理頁面找到擴充功能選項。
加入 ASP.NET Core 3.0 (x86) Runtime,免費版的 App Service 不支援 x64 程式,所以只能選 x86 的。
到這裡已經完成了程式的部屬,接著到 LINE Developers 測試一下程式是否正常運作,網站第一次載入會比較慢可能會超時,這時候再點一次 Verify 就好,如果成功會出現 Success 文字。
可以加機器好友然後測試傳訊息,看看有沒有如期回傳 hellow 給我們。
灑花~~~
部屬的過程其實遇到蠻多的問題,因為 Line Bot 一定要發行後才能測試,不像一般的網站可以在本機 Debug,所以看 Log 排除錯誤就變成很重要的一件事,下一篇就和大家介紹如何在程式中加入 Log,並分享一些 Azure 上查 Log 的技巧,最後加入資料庫的部分,因為 MsSql 沒有免費版的,所以會用 MySql 替代,今天就到這裡,感謝大家觀看。
最後許個願,希望 it 幫新增圖片批次上傳功能~~~